import hashlib
import json

from flask import Flask, request
from sqlalchemy import create_engine, Integer, Column, String, Table
from sqlalchemy.orm import sessionmaker, scoped_session, declarative_base

app = Flask(__name__)

# 创建一个引擎，目的是连接到我们的数据库上
engine = create_engine('mysql+pymysql://root:123456@127.0.0.1:3306/mumushouji',echo=True)
# 打开数据库的连接会话
session = sessionmaker(engine)
# 保证线程安全
db_session = scoped_session(session)
# 获取基类
Base = declarative_base()


class User(Base):
    # 表结构的反射加载
    __table__ = Table('user', Base.metadata, autoload_with=engine)


@app.route('/', methods=['POST'])
def reg():
    request_data = request.data
    request_data = json.loads(request_data)
    username = request_data['username']
    password = request_data['password']
    password = hashlib.md5(password.encode()).hexdigest()
    nickname = request_data['nickname']
    picture = request_data['picture']
    insert_data = {
        'username': username,
        'nickname': nickname,
        'password': password,
        'picture': picture
    }
    user = User(**insert_data)
    db_session.add(user)
    db_session.commit()

    return '注册成功'


row = db_session.query(User).filter_by(user_id=139).first()
row.nickname = 'dada'
db_session.commit()


row = db_session.query(User).filter_by(user_id=139).delete()
db_session.commit()


if __name__ == '__main__':
    app.run(debug=True)
